import logging
import os

from llama_index.core import SummaryIndex, SimpleDirectoryReader, PromptTemplate
from llama_index.llms.dashscope import DashScope

logging.basicConfig(level=logging.DEBUG)
data_dir = 'D:/pythonRoom/llm_llama/data'

print('初始化模型对象')
llm = DashScope(
    model="qwen-turbo",  # 使用通义千问Max模型 qwen-max
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # 从阿里云控制台获取
    temperature=0.3
)

documents = SimpleDirectoryReader(data_dir).load_data()

summary_index = SummaryIndex.from_documents(documents)

query_engine = summary_index.as_query_engine(llm=llm)

prompts = query_engine.get_prompts()

print('以下是默认提示词')
for k, p in prompts.items():
    print('===========================')
    print(f"Prompt Key: {k}")
    print("Text:")
    print(p.get_template())
    print("\n")

print('修改提示词')
new_qa_template = (
    "Context information is below.\n"
    "---------------------\n"
    "{context_str}\n"
    "---------------------\n"
    "Given the context information and not prior knowledge, "
    "answer the query in the style of a Shakespeare play.\n"
    "Query: {query_str}\n"
    "Answer: "
)

template = PromptTemplate(new_qa_template)
query_engine.update_prompts(
    {"response_synthesizer:text_qa_template": template}
)

print('修改后的提示词-(这里查看到的是不会改变的)')
for k, p in prompts.items():
    print('222===========================')
    print(f"Prompt Key: {k}")
    print("Text:")
    print(p.get_template())
    print("\n")
'''
{
	'model': 'qwen-max',
	'parameters': {
		'max_tokens': 256,
		'temperature': 0.3,
		'seed': 1234,
		'result_format': 'message'
	},
	'input': {
		'messages': [{
			'role': 'user',
			'content': 'Context information is below.\n---------------------\nfile_path: D:\\pythonRoom\\llm_llama\\data\\f1.txt\n\n李大长的牛粪致富经：从辍学少年到生态农业领军人\r\n\r\n1995年盛夏，16岁的李大长攥着皱巴巴的初中毕业证，站在村口老槐树下。书包里装着全班倒数的成绩单，裤脚还沾着帮家里放牛时蹭的牛粪。当同龄人挤破头想进县里高中时，他默默接过父亲手里的竹耙，开始在村后山坡的草场上捡牛粪——这是他辍学后给自己找的第一份营生。\r\n\r\n第一章：牛粪堆里的第一桶金\r\n"那时候哪懂什么环保，就知道牛粪晒干了能当柴烧。"李大长蹲在自家土坯房前，用木棍拨弄着晒粪场里的牛粪饼。他发现附近几个村的养殖户都为粪污处理发愁，便用板车挨家挨户收牛粪，晒干后卖给县砖窑当燃料。三年下来，竟攒下了两万多元，在村里盖起了三间红砖房。\r\n\r\n转折发生在2000年春。县里推广沼气池建设，李大长在帮技术员搬运设备时，偶然听到"沼渣沼液是上等有机肥"的说法。他连夜翻出压箱底的初中化学书，对照着沼气发酵原理，在自家后院挖了个简易发酵池。当第一车黑褐色的沼渣运到果园时，果农老张半信半疑地撒在黄化的柑橘树下，三个月后竟长出了拳头大的果实。\r\n\r\n第二章：科学发酵的魔法\r\n2008年，李大长在省农展会上偶遇农业专家王教授。看着他带来的牛粪样本，王教授眼镜片后闪过亮光："你这牛粪碳氮比25:1，正是生产生物有机肥的绝佳原料！"在专家指导下，李大长引入高温好氧发酵技术，将传统堆肥周期从90天缩短至21天。他特意从东北购进秸秆粉碎机，按科学配比添加稻壳、菌种，发酵温度始终控制在60-70℃之间。\r\n\r\n"那时候整天守在发酵车间，闻着酸臭味反而踏实。"李大长回忆道。当第一批检测报告显示重金属、抗生素残留远低于国标时，他骑着三轮车挨个敲开农资店的大门。第三年，产品进驻省供销社采购目录，年销量突破5000吨。\r\n\r\n第三章：循环经济的生态链\r\n2015年，李大长在村北荒滩建起现代化生态园。\n\nfile_path: D:\\pythonRoom\\llm_llama\\data\\f1.txt\n\n"那时候整天守在发酵车间，闻着酸臭味反而踏实。"李大长回忆道。当第一批检测报告显示重金属、抗生素残留远低于国标时，他骑着三轮车挨个敲开农资店的大门。第三年，产品进驻省供销社采购目录，年销量突破5000吨。\r\n\r\n第三章：循环经济的生态链\r\n2015年，李大长在村北荒滩建起现代化生态园。养殖区里，300头肉牛吃着酒糟与秸秆混合饲料；沼气区中，6座1000立方米的发酵罐昼夜运转；种植区上，智能水肥一体化系统将沼液精准输送。更绝的是他发明的"牛粪-蚯蚓-有机肥"模式：在发酵后的牛粪中养殖大平二号蚯蚓，蚯蚓粪售价高达800元/吨，蚯蚓则制成水产饲料。\r\n\r\n"去年光蚯蚓项目就赚了120万。"李大长指着生态园沙盘，眼神发亮。如今他的企业已形成"养殖-沼气-有机肥-种植"闭环，带动周边12个村、2000多户农民参与，户均年增收1.8万元。\r\n\r\n第四章：碳交易市场的新机遇\r\n2025年春，李大长在省碳中和研究院挂职期间，发现畜禽粪污资源化利用可申报碳减排指标。他立即组织团队测算：每处理1吨牛粪可减少0.8吨甲烷排放，相当于16吨二氧化碳当量。当年，企业通过出售碳配额获利380万元，这笔"意外之财"被他全部投入新建的微生物菌剂实验室。\r\n\r\n"现在讲究生态价值变现。"李大长展示着最新研发的耐盐碱微生物菌剂，这种菌剂能让盐碱地玉米增产40%。他刚与新疆建设兵团签订5万亩土壤改良合同，合同金额达2000万元。\r\n\r\n尾声：田野上的科技革命\r\n如今的李大长，西装革履地站在智能控制中心，大屏幕跳动着全球有机肥期货价格。但他仍保留着每天巡田的习惯，裤脚永远沾着泥点。当记者问及成功秘诀时，他蹲下身抓起一把黑褐色的有机肥："你看这土，闻着有股子生机。咱们搞农业的，就是要让每坨牛粪都活过来。"\r\n\r\n夕阳下，生态园的沼气发电站正将绿电输入国家电网，发酵车间飘出的酸味里，混着不远处草莓大棚的甜香。\n\nfile_path: D:\\pythonRoom\\llm_llama\\data\\f1.txt\n\n但他仍保留着每天巡田的习惯，裤脚永远沾着泥点。当记者问及成功秘诀时，他蹲下身抓起一把黑褐色的有机肥："你看这土，闻着有股子生机。咱们搞农业的，就是要让每坨牛粪都活过来。"\r\n\r\n夕阳下，生态园的沼气发电站正将绿电输入国家电网，发酵车间飘出的酸味里，混着不远处草莓大棚的甜香。这个曾因成绩差辍学的少年，用20年时间证明：在乡村振兴的田野上，最不起眼的"废物"也能绽放出亿万财富。\n---------------------\nGiven the context information and not prior knowledge, answer the query in the style of a Shakespeare play.\nQuery: 李大长时如何发家致富的?\nAnswer: '
		}]
	}
}
'''
question = "李大长时如何发家致富的?"
response = query_engine.query(question)
# 通过日志输出你会发现 使用的提示词目标已经变了
print('提问结果:', response)
